Macintosh Application Environment 2.0
The virtual Macintosh for open systems
White Paper
Overview
Users of RISC-based workstations running UNIX traditionally enjoy the
performance benefits of UNIX, which supports tools that are well-suited to
technical, scientific, or other computationally intensive jobs. However, these
users also need to perform jobs such as desktop publishing, spreadsheets, word
processing, email, task scheduling and other business applications as part of
their work. The right tools for these jobs are inexpensive, industry standard
productivity applications, and there is a very limited selection of these tools
available on UNIX.
Macintosh Application Environment (MAE) is a software product from Apple
Computer designed to offer workstation users the Macintosh "look and feel" and
associated ease-of-use and productivity benefits by providing a "virtual
Macintosh" environment within a standard UNIX® X Window.(TM) MAE supports most
off-the-shelf Macintosh programs, including spreadsheets and word processors,
as well as desktop publishing and graphics applications. And with its seamless
integration into the host UNIX environment, MAE allows users to:
- Exchange data between X Window and Macintosh environments;
- Launch UNIX applications from within the Macintosh environment;
- Manage UNIX files and the UNIX file system with the Macintosh Finder; and,
- Access UNIX system services, including TCP/IP networking via support for MacTCP.
Version 2.0 is the most recent release of the Macintosh Application Environment.
It incorporates several new enhancements and productivity features along with
significantly improved performance. Beginning with the User Experience, this
paper provides an survey of MAE while focusing on the new features supported in
MAE version 2.0. The next section, System Architecture, provides a detailed
summary of the sophisticated technology behind these new features and better
performance. The final section, System Administration for MAE, illustrates how
MAE fits into the UNIX environment.
What is the Macintosh Application Environment?
MAE allows users to run applications for the Mac(TM) OS on their UNIX workstations.
MAE does this by providing the Macintosh System 7.1 environment in an X Window.
In addition, MAE offers several useful Macintosh System 7.5 features (as
described in the section entitled New features of MAE version 2.0). Moreover,
the system is optimized to take maximum advantage of the RISC CPU architectures
present in supported workstations (for details, please see the section entitled
The Macintosh 68040LC Emulator).
To the user, MAE appears to be a fully functional Macintosh environment
contained in an X Window, providing an experience that is virtually identical
to that of using a standard Macintosh computer based on a Motorola 680X0 (68K)
microprocessor. To the host UNIX system, MAE appears to be a self-contained X
Window application. The Macintosh graphical interface appears just as it does
on a Macintosh computer; files are seen, copied, and opened as on a Macintosh
computer; applications run as if they were running on a Macintosh computer; and
printers and servers are selected using the chooser utility.
MAE is standards-based, and supports UNIX-based workstations equipped with X
Window System version 11, release 4 or 5. (Please see the section entitled On
what systems does MAE run? for currently supported workstations.) It also
supports any window manager that adheres to the X Window System Standard,
including Motif(TM), HP VUE,® and OPEN LOOK,® and follows the standards
defined by the Interclient Communications Convention (ICCCM). As the only
Macintosh environment for UNIX workstations that is officially developed,
supported, endorsed and sanctioned by Apple Computer, MAE is the best
performing, most compatible UNIX-based Macintosh emulator currently available.
Benefits of MAE
MAE maximizes the efficiency of the UNIX user by supporting simple navigation
and management of both Macintosh and UNIX file systems, and by providing:
- Enhanced productivity through shrinkwrap Macintosh applications. MAE
supports most of the productivity applications and tools long enjoyed by users
of Macintosh systems. In fact, MAE supports more of these applications than any
competing technology.
- Copy-and-paste of text and graphics. Allows you to transfer text and
graphics between MAE and other X Windows via the copy-and-paste tools in the
MAE Toolbar.
- Drag-and-drop UNIX command execution. To execute UNIX commands, the user
merely "drags" the icon of a file or directory and "drops" it onto the icon of
a UNIX command. For example, if you drag the icon of a directory to the ls
icon, the X window displays a list of the files in that directory.
- Support for NFS and AFS. MAE supports both NFS and AFS (Andrew File System
2.4) to provide access to the highly distributed file systems typical of
workstation environments. NFS/AFS support allows you to easily access
appropriate files within such environments via the Finder.
New features of MAE version 2.0 provide the following additional benefits.
New features of MAE version 2.0
- AppleTalk for MAE. System administrators can now help users gain
access to network resources more easily using AppleTalk networking
capabilities. With the AppleTalk protocol, designed and developed by Apple
Computer, users have a simple method to access printers, file servers, or other
AppleTalk-enabled computers on the network using the Chooser.
- Improved speed and performance in a smaller amount of memory. MAE
version 2.0 takes advantage of two technological breakthroughs - dynamic
compilation and code block templates - to obtain optimal emulator performance
while consuming a minimal amount of memory. These techniques reduce system
overhead and increase speed by allowing MAE to identify sections of MacOS and
applications code that are translated to native code, and run directly as
native code on the underlying RISC architecture.
- MacTCP support. MacTCP is the Macintosh implementation of the TCP/IP
networking protocol, which gives users access to the Internet as well as
TCP/IP-based utilities such as Fetch and Telnet.
- Sound Manager. Controlled by the Sound control panel, the MAE Sound
Manager supports all standard sounds supported by the Macintosh computer.
- Dynamically resizable MAE window. Users can dynamically resize the
MAE window using the Monitors control panel in MAE or the workstation's X
Window size controls.
- Finder Window Update. Finder Window Update helps to reduce MAE
overhead on the host system (for additional details, please see the section
entitled Configuring MAE for the UNIX Environment).
- Cycle saving via Processor Slowdown. Processor Slowdown also helps to
reduce MAE overhead on the host UNIX system (for additional details, please see
the section entitled Configuring MAE for the UNIX Environment).
- Temporary Installer Volume (TIV). TIV is a utility that facilitates
installation of Macintosh productivity applications in the UNIX host system
(for additional details, please see the section entitled Configuring MAE for
the UNIX Environment).
- NFS Heartbeat. An important enhancement for improved NFS robustness,
NFS Heartbeat provides a mechanism by which to break out of "hung" network
system calls. These calls can hang when MAE attempts to access an inaccessible
NFS-based file server.
- Productivity features from Macintosh System 7.5. MAE 2.0 enhancements
from System 7.5 include:
- Launcher. The Launcher control panel permits users to launch an
application with a single click of a mouse button by selecting from lists of
their most frequently used applications.
- Stickies. Allows users to create electronic "sticky notes" and place
them anywhere in the MAE window.
- Improved desktop patterns. The Desktop Patterns control panel has
been expanded to provide more colorful and textured Desktop patterns. Users can
also create their own custom Desktop patterns by copying and pasting graphics
into the control panel.
- Find File. This expander Finder utility lets users quickly search
hard disk drives or file servers for a desired file.
- WindowShade. Allows users to shrink a window in MAE to just its title
bar or re-expand it with two or three clicks of the mouse.
- Extension Manager. The Extension Manager control panel lets users
enable or disable Macintosh control panels, extensions, and INITs in MAE.
On which systems does MAE run?
The Macintosh Application Environment 2.0 currently runs on UNIX platforms from
Hewlett-Packard (HP-UX® 9.01, 9.03, and 9.05) and Sun Microsystems (Solaris®
2.3 or 2.4). See the section System Administration for MAE for more detailed
system requrements.
The User Experience
What is it like to use MAE version 2.0 on a UNIX workstation? The short answer
is: Almost exactly the same as using a Macintosh computer. In this section,
however, the focus is on the differences between the MAE interface and the
Macintosh interface. Prospective users who are not familiar with the standard
Macintosh interface may want to refer to the Macintosh User's Guide (part
number 030-2651-B).
The most significant difference between using MAE and a Macintosh interface is
that in MAE, users can take advantage of features that result from the
interaction of the Macintosh system with the UNIX system. For example, in
addition to using Macintosh productivity applications, UNIX users can use the
Macintosh Finder to navigate the UNIX file system, and UNIX commands can be
launched from within MAE. This difference arises repeatedly under various
guises in the sections that follow.
Launching MAE
Once MAE has been properly installed on a UNIX workstation (see the System
Administration section for more information on installing MAE), the user may
launch it at any time by typing mae on the command line in an appropriate
terminal window. Optionally, the user may also launch MAE from within a UNIX
shell script, by clicking on an appropriately configured MAE icon, or by
clicking on an appropriately defined MAE entry in an X Window menu. A system
administrator can set up these alternatives to the command-line launch
procedure.
When MAE is launched, an X Window with a Macintosh interface appears. Typically,
the MAE interface will look like this:
(Picture of MAE window here)
The MAE window by default is set at a size of 640 x 480 pixels, which is
equivalent to a Macintosh 14 inch screen. As noted above, this size can be
dynamically adjusted. The principal visual difference between the MAE window
and a standard Macintosh interface is the presence of the MAE Toolbar, which
extends across the bottom edge of the MAE X Window.
Using the MAE Toolbar
The tools in the MAE Toolbar control interactions between MAE and the host UNIX
environment. The user may also access these features via the Toolbar Menu,
which is displayed by pressing the third, or rightmost, mouse button when the
cursor is positioned within the MAE window. The Toolbar can optionally be
hidden by means of the Hide Toolbar option in the Toolbar pop-up menu.
The interactions controlled by the MAE Toolbar are floppy/CD mounting, capture
of screen images, movement of data between MAE and the X Window environment,
constrained cursor positioning, and access to MAE Help.
-
- Mount Floppy/CD. UNIX workstations do not automatically detect that a floppy
disk or CD-ROM disc has been inserted into an appropriate drive. The Mount
Floppy/CD tool allows a user to notify MAE that a floppy or CD-ROM has been
inserted. If MAE finds an initialized high-density floppy or a CD-ROM when this
button is clicked, MAE mounts it and the appropriate icon appears on the
desktop.
- (select button)
- Select from Screen. The Select from Screen tool lets a user select an
area of the screen and capture an image of it in the Macintosh Clipboard. You
can select any graphic on the screen, even a 3-D graphic or surface model, and
paste the image into a Macintosh application that accepts graphics in PICT
format by positioning the pointer in the document window and choosing Paste
from the Edit menu.
- (export button)
- Export to X and Import from X. These commands facilitate the
interchange of data between X Window and Macintosh application documents. For
example, to import text or graphics from an X Window client to a Macintosh
document, open and activate the appropriate X application and select the text
and graphics you wish to import. Follow the X application's procedures for
copying, and click the Import from X button in the MAE Toolbar. Then paste the
desired data into the Macintosh document by using the standard Paste command.
The procedure for exporting to X is simply the inverse of the importing
procedure
-
- Contain Cursor. The Contain Cursor tool prevents you from moving the
cursor outside the MAE window. This feature is particularly useful when you
intend to work extensively within that window, and do not want to inadvertently
inactivate the window since this could result in the disappearance of the MAE
window behind other active X windows.
-
- Toolbar Help. Toolbar Help displays a series of Help dialog boxes
that describe MAE Toolbar functionality.
Configuring MAE for the UNIX Environment
Another MAE component used for interacting between MAE and the host UNIX/X
Window system is the MAE General control panel, accessible via the Control
Panels entry in the Apple pull-down menu. MAE General controls allow you to
configure several performance attributes and operations between MAE and the
UNIX system.
The MAE General control panel supports:
- Finder Window Update. Ideally, the Finder needs to be updated when changes
occur anywhere in the UNIX file system. However, if the Finder is updated too
frequently, the process can degrade the workstation's overall performance.
Finder Window Update is a user-configurable feature that helps to reduce MAE
overhead on the host system by reducing the frequency with which MAE checks for
changes in the UNIX file system.
- Hidden UNIX files. This options allows UNIX "dot files" (i.e., files whose
names begin with a period [.] or "dot") to be displayed on the MAE desktop. If
the checkbox in this option is not checked, these hidden UNIX files are not
displayed.
- Color flash reduction. This patent-pending MAE feature reduces the "flash"
that occurs when the cursor moves between UNIX and Macintosh environments that
are using different color tables. When this option is active, MAE attempts to
maintain consistency between its color and that of the X Window environment.
When the option is off, the default colors used by MAE are the same as those
used on a standard Macintosh. Color flash reduction is most useful when using a
color-intensive application.
- Temporary Installer Volume (TIV). A utility that creates a virtual Macintosh
disk within the UNIX file system, the TIV is useful when the installer of a
Macintosh application attempts to install that application directly to the root
('/') directory, and that directory has insufficient space or access privileges
for the application. This utility allows the application to be installed to the
TIV, and then moved to an appropriate place within the UNIX file system.
- Trash. This option permits the user to set the minimum file size used for
the Fast Delete feature. When you put a file into the MAE trash, MAE makes a
copy of it, unless it originated in your home directory. However, if a file
equals or exceeds the size set in this option, the Fast Delete feature deletes
it without making such a copy.
- Cycle saving via Processor Slowdown. Processor Slowdown is a
user-configurable feature that helps to reduce MAE overhead on the host UNIX
system by reducing the computation requirements when MAE is inactive.
Installing Macintosh applications
Once MAE is configured for the UNIX environment, the next step in setting up the
system is to install Macintosh applications. MAE supports several techniques
for application installation.
Installing with the application's installation utility
The easiest installation procedure is to simply install the application with its
included installer, as described in the application's documentation. Some
application installers allow you to choose the installation destination drive
and/or folder. In MAE, such installers would allow you to choose, for example,
your home directory or a folder within your home directory.
Some installers, however, do not let you specify an installation destination.
These installers will probably attempt to install in the UNIX system's root
directory. In such cases, installation may not succeed because there is often
not enough room in the root directory, even if there is enough room elsewhere
on the drive. When this happens, the best approach is to install on a Temporary
Installer Volume. [NOTE: Any installation will fail if there really is not
sufficient room for the application on the destination drive.]
Installing with the Temporary Installer Volume
A TIV is a virtual hard disk - a file on the UNIX file system that mimics a
Macintosh hard disk. When using the TIV feature, you create a Temporary
Installer Volume approximately the size of the application you are installing.
You then install the application to the TIV, and then can move the installed
application to the desired location in your file system.
Installing by copying from a Macintosh computer
You can also copy application files from a Macintosh computer directly to MAE
using a network server or floppy disks. The network server provides a
particularly fast and easy way to copy an application to the MAE environment,
since you can use the Chooser to select a Macintosh file server on the network.
The file server appears as a hard disk icon on the MAE desktop; you copy the
application to your system just as if the file server were a hard disk attached
to your system.
Opening UNIX files
You can use MAE to open UNIX documents, run UNIX commands, and launch X
applications. In most cases, you can double-click a file icon or a UNIX command
icon. Document files appear in the terminal window in the default text editor;
if you double-click a UNIX command icon, the results of the command appear in
the terminal window.
Launching commands and programs
As discussed above under Benefits of MAE, MAE supports drag-and-drop execution
of UNIX commands. Frequently used programs can also be launched by means of the
Launcher utility. With a minimum of preparation, consisting primarily of
placing application aliases into appropriate folders, users can customize the
File Launching control panel so that it displays the icons of the most
frequently used programs. To launch a file, you simply open the File Launching
control panel and select from the program icons that have been installed.
AppleTalk support
AppleTalk support offers a way to connect MAE to a range of system services
simply by using the Chooser window to select the required service. When you
open the Chooser, you see a window that looks like this:
For information on AppleTalk zones within your network, please consult your
System Administrator. Once these zones have been established, connecting to
printers and servers through AppleTalk takes only a few mouse clicks.
Sharing files with AppleShare
AppleShare networking links allow you to share your files with other users, link
programs for sharing data, share information with a specified group,
selectively permit other users to gain access to files you own, and connect to
a file server. These links are established using the Chooser. You begin by
clicking the AppleShare icon, and continue by selecting an appropriate zone
from the Chooser's list of AppleTalk zones. Once a zone is selected, the
Chooser displays a list of servers available in that zone. To establish a
connection to a server, simply double click on the name of the server, log on
to the server, and close the Chooser window.
Connecting to a printer via AppleTalk
The Chooser also lets you select a printer that is connected to the AppleTalk
network. Click the appropriate printer icon, then select an appropriate zone
from the Chooser's list of AppleTalk zones. Once a zone is selected, the
Chooser displays a list of printers available in that zone. To establish a
connection to a printer, simply click on the name of the printer and close the
Chooser window. To print all or part of a document on the selected printer, use
the standard Print command in the Macintosh application.
Printing to a UNIX PostScript(TM) printer
MAE can also be configured to use lp(1) or lpr(1), so you can send print
commands from an application running in MAE to a UNIX PostScript printer.
Specifying a UNIX print command allows you to print from Macintosh applications
without requiring an AppleTalk connection to your printer.
To connect to a UNIX printer, click on the LprWriter icon. When you first
connect to a lpr printer, you need to tell MAE what kind of printer you are
selecting, using the Setup Print Command to specify the Printer Description
(PPD) file that is appropriate for the UNIX PostScript printer you want to use.
Support for sound and QuickTime
MAE 2.0 now provides the standard sounds - from system alert sounds to sampled
sounds - that are supported on the Macintosh computer by means of a modified
Sound Manager 3.0 extension. Sound support can be configured through the Sound
Manager control panel. MAE 2.0 also supports all of the sound sampling rates
available on the host platform. However, sound quality may be degraded at high
sampling rates.
Similarly, users of MAE 2.0 can play QuickTime videos inside their MAE window,
with the included QuickTime 2.0 extension. The speed and quality of QuickTime
video is dependent on the speed of the host platform and the quality of the
QuickTime video itself. MAE includes the most recent version of the QuickTime
Movie Player application.
MAE Architecture
The MAE user experience is provided by a sophisticated technology designed to
provide optimum performance of the emulated Macintosh environment in the host
system context. This section covers that technology for readers who are
interested in understanding how MAE works.
The block diagram below illustrates the principal constituents of the Macintosh
Application Environment system architecture. The shading, or lack thereof,
indicates the principal sources of the system's components. While this section
discusses all of these components in turn, it focuses on the unshaded sections
that comprise the heart of the MAE system, namely, support for the UNIX
interface and native code acceleration and the Motorola 68K emulator. These are
the system elements responsible for integrating the MacOS with UNIX and for
delivering MAE's highly optimized performance characteristics. To provide some
context for understanding the relationships between these elements, the
following discussion provides an overview of how MAE works within the UNIX
environment.
How MAE works
When MAE is launched, two UNIX process are started. These processes are called
mae and macd. The mae process is attached to the X Window containing MAE; it is
responsible for providing the "look and feel" of the Macintosh interface. macd
is a UNIX daemon, an auxiliary process launched by mae to provide services best
handled by an independent program.
To UNIX, mae looks like any other self-contained X Window application that the
UNIX scheduler is responsible for managing. Macintosh applications started
within MAE appear to be simple subprocesses running within MAE. MAE is capable
of running multiple Macintosh applications, with the ability to switch between
them arbitrarily and even to have some of them perform processing in the
background. However, because all this occurs within mae, the running Macintosh
applications will not appear in a list of UNIX processes. UNIX commands
executed from within MAE, on the other hand, are forked directly by the UNIX OS
as independent processes, and do appear in UNIX process lists. If the UNIX
command is an X window client, it creates one or more X windows that are
independent of the MAE window.
MAE contains an implementation of the Macintosh Process Manager. This software
manages the loading and unloading of all the Macintosh applications that the
MAE user executes. Memory space for use by the Process Manager is made
available by the mae process at initialization.
The default size of the memory region is 8 MB, but the user can expand it either
by using the memory command line option of the mae command or by using the MAE
Memory control panel from within MAE.
The configured memory size is directly analogous to physical memory in an actual
Macintosh computer and determines the maximum size and number of Macintosh
applications that MAE can run at a single time. While the standard UNIX
features of process memory protection and preemptive multitasking guarantee the
integrity of other UNIX processes running on the same workstation as MAE, the
Macintosh applications running within MAE all share a common memory region and
must adhere to the cooperative multitasking paradigm that is required of all
Macintosh applications.
Whether MAE is executing Macintosh system or application code, all the executed
commands are converted to the underlying, or "native", RISC code by means of
68K emulation. Some code blocks are translated to native code automatically by
dynamic compilation. Other code blocks take advantage of manually entered
native code patches. Some commands are converted to UNIX system calls which are
then executed "native" on the host workstation.
Macintosh 680x0 Applications
At the top of the MAE architecture, the user interacts with software
applications designed to run on Macintosh computer systems based on Motorola
680x0 microprocessors. MAE provides the underlying technology that allows
application processes designed for a 680x0 Macintosh to run smoothly in the MAE
environmentÑeven though the host system is running an X Windows System
environment on a RISC-based microprocessor.
Applications take extensive advantage of the Macintosh Toolbox and ROM-based
functionality, present in the layer below them. This functionality includes,
for example, support for graphics (QuickDraw) and the Macintosh windowing
system, file system management and support (the Finder), I/O management and the
Macintosh Process Manager.
Macintosh Toolbox and ROM-based Functionality
Three examples of emulated functionality and Macintosh/UNIX integration made
available by this level of the MAE architecture are the Finder, emulated
Macintosh graphics, and color flash reduction, which is closely related to the
Macintosh graphics subsystem. System components within this layer interact with
the OS Interface via the 68K emulator.
The Finder
The Macintosh Finder provides an intuitive approach to file system management
and support. Within MAE, it interacts with the UNIX OS interface to provide
similar support for both Macintosh and UNIX file systems in the emulated
Macintosh environment. By masking much of the complexity associated with
navigating the native UNIX file system, the Finder in MAE potentially provides
a significant productivity enhancement to the UNIX workstation user.
MAE Graphics Support
Because the UNIX workstation has no physically Macintosh-compatible video card
or monitor, MAE must simulate this hardware in order to emulate Macintosh
software support for graphics within the X Window environment. To accomplish
this, MAE creates a virtual Macintosh monitor to which applications draw, as
illustrated in the figure below.
MAE takes advantage of the fact that virtually all Macintosh applications make
calls to the Macintosh graphics standard (called QuickDraw) for their graphics
operations. When the Macintosh application makes a QuickDraw call, QuickDraw
updates the virtual monitor and tells mae which part of the bitmap changed; mae
then makes the appropriate X Window System calls to send the graphics to the X
server.
Color Flash Reduction*
"Color flash" refers to the display of unexpected colors and a screen flash that
happens when the cursor is moved among X Window System applications with
different color tables. It occurs when the hardware cannot support the number
of colors that must be displayed concurrently, as sometimes happens when
running an X Window application that uses its own color table.
Many X Window systems can have only one color table active (that is, actually
installed into the hardware color table) at a time. Applications like MAE that
use a color table other than the X Window default color table, which is shared
by many other X Window applications, display the unexpected colors
characteristic of color flash when the active window is changed. The MAE Color
Flash Reduction option works by using a patent-pending algorithm that attempts
to keep the color definitions in its own color table in synchronization with
the default color table. Basically, the algorithm maintains a "best possible
match" color table on an ongoing basis.
SuperSelect*
SuperSelect provides the foundation for the MAE toolbar's Select from Screen
tool. It is a platform-independent, patent-pending algorithm that permits
capture of an arbitrary rectangular section of a computer screen. Basically,
SuperSelect works with different pixel resolutions and color maps by
normalizing the selected region with respect to the MAE color map, and placing
a snapshot of the normalized region into a buffer with 24-bit color resolution.
OS Interface and Native Code Acceleration
This component of the MAE architecture supports the seamless integration of the
Macintosh and UNIX environments. In addition, it contains the manually
identified and defined native code patches that are equivalent to code blocks
frequently encountered in standard Macintosh system and applications code.
These native code patches are permanently installed at system start-up time,
and help provide the performance optimizations found in MAE. The Mac/UNIX
scaffolding code provides the mechanism by which key Macintosh operating system
calls are converted to their UNIX equivalents.
The Macintosh 68040LC Emulator
MAE offers broad application compatibility due to its state-of-the-art Motorola
68040LC emulator. Advances in the emulation technology have vastly increased
the performance speed of Macintosh applications running in the MAE window. This
emulator technology handles 680x0 (68K) instructions initiated by the
application by reading the application's 68K code and translating these
instructions to the equivalent instructions for the host's RISC processor. In
essence, the MAE emulator works as a "virtual Macintosh CPU" on your
workstation. Macintosh applications that use 68K code operate in the virtual
CPU and behave as though they were running on a native Macintosh CPU. This
emulation is transparent to both the application and the user.
In addition to the instruction translation that is normal in emulated
environments, MAE incorporates two state-of-the-art features that together
serve to greatly enhance emulator performance:
- Dynamic Compilation.* Dynamic compilation refers to a process by
which frequently traversed blocks of 68K code are automatically identified,
translated to their native equivalents, and linked into the emulator's
translation table, obviating the need for instruction-by-instruction processing
when these blocks are subsequently encountered. In this way, MAE is optimized
to take advantage of the workstations RISC architecture. Dynamic compilation
delivers enormous performance enhancements by:
- Eliminating dispatch loops for instructions contained with dynamically compiled blocks,
- Eliminating the need for unused condition code calculations, and
- Increasing the localization of the instructions within the host system's cache.
- Reduction of Memory Footprint. Within Macintosh system and
applications code, there are instructions and sequences of instructions that
are effectively identical except for the references to their operands. For
example, the instructions that result in the addition of the contents of two
registers are all effectively the same, regardless of which specific registers
they refer to.
To reduce the memory footprint of MAE 2.0, these redundant blocks of code were
eliminated by creating "template" routines that generates variants of these
codes during runtime. These templates eliminate pre-generating similar blocks
of code and reduce the memory footprint, increasing MAE runtime performance.
The UNIX/X Window Platform
Accessed primarily via the OS interface, the UNIX/X Window platform - the part
of the MAE architecture provided by the workstation vendor - is principally
responsible for providing file system and networking support.
File System Management
MAE maps file activities from within MAE to standard UNIX file-manipulation
routines, and displays all effects in standard Macintosh fashion within the MAE
window. MAE treats the UNIX file system as a single Macintosh volume, which is
considered to be the MAE startup volume. The entire UNIX file system - including
local and NFS file systems, as well as Macintosh files - is accessible through
standard Macintosh techniques such as click, drag and drop.
UNIX enforces access permissions for files and directories. MAE uses these
underlying UNIX permissions and maps them to semantically correct Macintosh
privileges. To accommodate permission differences for file operations, the MAE
Finder includes a new menu item: UNIX File Permissions. MAE presents the user
with the actual UNIX application privileges using the Macintosh interface.
Under UNIX, these permissions are read, write and execute. Under MAE, the
corresponding Macintosh permissions are See Folders, See Files and Make
Changes.
All files and folders created within MAE receive default UNIX permissions. In
MAE, users can view UNIX permissions but cannot change them unless they have
the necessary UNIX privileges. The UNIX File Permissions menu allows users to
set appropriate permissions, as shown in the following illustration.
Networking Services: AppleTalk and MacTCP
MAE 2.0 now supports two Apple networking standards: AppleTalk and MacTCP.
- AppleTalk. AppleTalk for MAE 2.0 consists of two parts - an emulated part
that works with Macintosh 68K system calls and a native part that integrates
into the host system kernel. Thus, AppleTalk acts as an interpreter between the
MAE emulation layer and the underlying UNIX system. By using the Chooser to
establish AppleTalk connections, selecting a printer or file server over the
network is virtually identical to selecting such devices when they are directly
connected to a standard Macintosh computer.
AppleTalk for MAE maintains the Macintosh Toolbox APIs as described in Inside
Macintosh: Networking. The integration of AppleTalk into the underlying UNIX
system takes place using a number of protocols that correspond to the layers of
the ISO OSI model.
For example, at the Physical Layer, MAE uses the Ethernet hardware provided as
standard equipment in supported workstations. At the Data Link Layer,
AppleTalk's Link Access Protocol provides data link access control, packet
transmission/reception, and addressing capabilities. MAE 2.0 supports the
EtherTalk Link Access Protocol (ELAP), which provides AppleTalk connectivity
over an Ethernet data link. At the Network Layer, the Datagram Delivery
Protocol (DDP) offers "best effort" socket-to-socket datagram delivery over an
AppleTalk network. AppleTalk for MAE uses UNIX Streams to configure these
protocols into the UNIX kernel. (Solaris includes Streams; MAE includes
STREAMS/UX with the HP-UX version of MAE.)
Once installed on a workstation, AppleTalk allows the supported workstation to
function as an independent node on an AppleTalk network. All AppleTalk services
function just as they do on a Macintosh computer. Each individual resource - a
file server or a printer, for example - appears as a simple named entity. To
change networks where there are several interfaces, the user selects an
interface using the Networks Control Panel, which is depicted below.
AppleTalk for MAE relies on the presence of several modified Macintosh
extensions and control panels to provide AppleTalk network services. These
extensions and control panels are shown below.
(This is still under construction)
- MacTCP. MacTCP is a software driver that implements the TCP/IP protocols
within the Macintosh operating system, allowing the user to make use of
utilities such as Telnet or Fetch. On a Macintosh computer, the user controls
MacTCP using the MacTCP control panel. On MAE, however, the TCP/IP protocols
are implemented through the UNIX interface.
NFS Heartbeat
NFS Heartbeat offers a way to break out of hung system calls to ensure that MAE
will continue running even when trying to access an inaccessible server. For
example, before the implementation of this feature, if an NFS server was
hard-mounted and a user tried to access this server, the MAE process would
previously have blocked indefinitely, leaving the user without the ability to
back out of the operation. With NFS Heartbeat, MAE 2.0 can detect this
condition, and return control to the user.
In essence, NFS Heartbeat works by sending signals to a helper process in the
UNIX system. If MAE stops sending signals to the helper because of a system
hang-up, the helper automatically sends a signal to break out of the hung
system call. The system stack is unwound to the point where the system was hung
up, MAE continues to work gracefully, and the user is able to continue working
without needing to reboot.
System Administration for MAE
To ensure that network users are able to make full use of the new features of
MAE 2.0, system administrators need to address a number of issues concerning
performance, compatibility, and administration. Major feature enhancements such
as AppleTalk and MacTCP mean that MAE users are able to navigate the network
with increased ease - and system administrators can make access to the network
even easier for MAE users by configuring the appropriate network services.
Installing MAE on the system
The System Administrator can install MAE on a UNIX workstation either from a
network server or locally using a CD ROM drive. Since Apple delivers MAE
installer files on CD-ROM, systems that require special authorization to mount
file systems will require the system administrator to mount the CD-ROM for the
user. Once the CD-ROM file system is mounted on the system, users will
generally need to install MAE as root.
Individual users can install the Macintosh Application Environment on their
workstations using the MAE Installer. The installer is a powerful, yet
easy-to-use installation utility designed to meet the needs of both novice and
expert users. If users select the Easy Install option, they only need to answer
three questions before the Installer begins to copy files to the workstation.
If a user is uncertain how to respond to an Installer question, the Installer
provides context-sensitive, on-line help.
Requirements for running MAE
The following resources are required to run MAE on a Solaris or an HP-UX system:
- A UNIX workstation that supports MAE
- A minimum of 16 megabytes (MB) of free disk space. (22 MB are recommended,
and 38 MB are required to install the entire MAE package, including AppleTalk,
the on-line documentation, and the demonstration applications.)
- A minimum of 16 MB of RAM (24 MB recommended)
- An X Window System server, Version 11, release 4 or 5
- The Macintosh Application Environment CD-ROM
- A CD-ROM drive, or access to one over a network (if one is installing from a CD-ROM disc)
- PostScript-compatible printer or an AppleTalk printer, if printing from MAE is desired
For Solaris users:
- Solaris 2.3 or 2.4
- Volume Manager patch
For HP-UX users:
- HP-UX version 9.01, 9.03, or 9.05
- STREAMS/UX installed first if the user plans to access AppleTalk.
(STREAMS/UX is included in the HP-UX release of MAE.)
- The Hewlett-Packard Audio Server.
Compatibility and licensing
MAE 2.0 is compatible with the Macintosh System 7.1. Although many features from
System 7.5 have been added to MAE 2.0, as detailed in the section entitled New
features in MAE version 2.0, the underlying software is designed for
compatibility with Macintosh System 7.1 software.
The MAE License Binder is a utility that makes it easy for system administrators
to comply with Apple's End User License Agreement, and to administer these
licensing provisions from a central location. The License Binder must be run
before users can work with MAE. It can be used to assign a license either to a
particular user name or to a particular workstation.
If a license is assigned to a particular workstation, anyone using that
workstation can use that installation of MAE, but it cannot be used remotely
from another workstation. If a license is assigned to a particular individual,
then only that individual can access that installation of MAE locally or
remotely.
For additional information on using the License Binder, please see either the
MAE User's Guide or the MAE System Administrator's Guide.
Improving performance when running MAE
System administrators should note the following tips for maximizing MAE performance on
the workstation:
- Run MAE in black-and-white, when displaying on a remote X server. Because
the bitmaps are being sent across the network, using only 1 bit per pixel
(black-and-white) is the most efficient way to display the MAE desktop
remotely.
- Turn off Color Flash Reduction (in the MAE General control panel), if you
are using color. This prevents MAE from allocating extra memory for a graphics
buffer.
- Put the System Folder on the local machine, not on a remote volume. The MAE
Finder and Macintosh applications use resources from the System Folder
frequently. If a user's System Folder is on a remote machine, recommend that he
or she move the System Folder to the local machine.
- Run in a small memory partition. Use the minimum amount of memory, by using
either the -memory command-line option or the Memory control panel.
- Remove unnecessary fonts. Fonts are contained in apple/Fonts. You may remove
fonts you know you won't need, thus saving disk space in every System Folder
created.
- Set the Finder Window Update option to a high value. The Finder Window
Update option in the MAE General control panel determines how often the Finder
checks for new files that were created outside of MAE. For example, if you
created a text file in your home directory (using a utility such as vi), and
your home directory was open in MAE, you wouldn't see that file until the next
Finder check occurred. If you do not need frequent Finder checks, you can
improve performance by setting this number to a high value (such as 120
seconds) and turning off Finder Window Update when the Finder is in the
background.
- Run fewer copies of MAE. The more copies of MAE running on a single
workstation, the slower each copy will be. You might want to try running MAE
locally even if the local machine is typically slower than the remote machine.
Configuring non-Macintosh hardware
Because MAE runs on non-Apple hardware, it provides alternate ways to configure
various keyboards, mouse devices and monitors. For example, UNIX workstation
keyboards do not have an equivalent to the Macintosh Option and Command keys.
MAE supports system configuration utilities that allow the user to configure
non-Macintosh hardware for Macintosh applications.
Customizing the keyboard
Each UNIX vendor supports its own family of keyboards. Although USA keyboards
for MAE-supported UNIX platforms are comparable in layout to standard Macintosh
keyboards and to each other, some international keyboards for MAE-supported
workstations are significantly different in layout from international Macintosh
keyboards. In many cases, the key sequences these keyboards use to input
accented and other special characters are different as well.
The MAE Keyboard control panel provides a key-mapping function that retains as
much of the UNIX keyboard mapping as possible, while at the same time offering
Macintosh keyboard functionality. The result is that the workstation keyboard
still behaves as the user expects when operating under the UNIX operating
system, but it also allows the user to input characters required under
Macintosh conventions.
Mouse support
UNIX keyboards support a mouse with three buttons, whereas the Macintosh mouse
supports only one. When a user is working within the MAE, the left mouse button
acts as the Macintosh mouse button. The user performs all mouse actions within
MAE (e.g. pointing, selecting, clicking, shift-clicking and dragging) with the
left mouse button.
When the user moves the mouse pointer out of the MAE window and into the UNIX
environment, the mouse automatically reverts back to standard UNIX behavior,
supporting three active buttons.
Resizing Windows and Changing Screen Bit-Depth
MAE considers the X Window in which it is located to be identical to the
physical monitor of a Macintosh computer. Users can dynamically resize the MAE
window just like any other X Window - by clicking and dragging the lower right
corner of the MAE window. Users can also specify the start-up dimensions of the
MAE window through the Monitors control panel. In MAE 2.0, window resizing has
been improved so that the window can be resized without requiring a "Macintosh
Restart."
Users can specify a default MAE monitor size that matches one of Apple's
standard monitor sizes, or they can enter custom dimensions. The following
figure shows the Monitors control panel with options selected for custom
"monitor" dimensions.
Users can also change screen bit-depth using the Monitors control panel. The
Macintosh Application Environment provides a full range of black-and-white and
color configurations. Grayscale is available in 256 levels. MAE allows
workstations with 24-bit graphics frame buffers to display millions of colors.
(Monitors icon)
Configuring AppleTalk for MAE
AppleTalk for MAE 2.0 is an implementation of the AppleTalk version 56 protocol
specification, based on UNIX Streams, which makes AppleTalk functionality
available to Macintosh applications and system software running under MAE.
Streams must be installed before AppleTalk for MAE can be used. Since Streams
is part of the standard MAE Solaris distribution, it is installed automatically
when AppleTalk is installed. STREAMS/UX is provided with the HP version of MAE
for HP-UX workstations, and is installed with the AppleTalk kernal.
The AppleTalk implementation for MAE consists of two pieces: An emulated portion
and a native portion. System administrators should note that the native portion
of AppleTalk for MAE is a UNIX Streams stack that must be configured into the
kernel. (For detailed information about configuring AppleTalk for MAE into the
kernel, refer to the MAE System Administrator's Guide, provided with MAE.)
There is essentially no difference in system administration between AppleTalk
for MAE and AppleTalk for the Macintosh. The administrator needs to define
AppleTalk zone names. Typically, zones are selected dynamically when AppleTalk
is initiated by MAE, or selected explicitly using the Network Control Panel. In
the Network control panel, the number of zones available is determined
automatically during the router set up.
Future Directions
Apple will be responsive to market requirements for MAE features and platforms,
and is committed to further support and development of the product. In addition
to the possible extensions listed below, Apple will continue to refine MAE
technology for the enhancement of existing features.
The following areas are being considered for future releases of MAE, although
specific features and schedules are not committed at this time.
- System 7.5 compatibility
- Support for additional UNIX systems, such as HP-UX 10.0
- Support for additional hardware platforms
- Client/Server optimization
- Support for OpenDoc
- Floating point support
- Further performance improvements
Apple is also investigating the viability of supporting MAE on Power PC. Apple
wants to ensure that the performance of RISC-on-RISC emulation will meet
customer requirements before committing to this development effort.
Apple is committed to extend the benefits of the Mac OS and Apple's System
Software Technologies to a much wider audience. Through the concept of "Open
Innovation", Apple is forming industry alliances and partnerships to establish
new vendor-neutral standards, adopting prevailing industry standards,
implementing key Apple technologies cross-platform, and openly licensing the
Mac OS.
For Further Information
To get further information about MAE, you can access the MAE Web site at URL
www.mae.apple.com,
or via FTP to
www.mae.apple.com
(/pub/mae directory).
Online Information
Provided in online form with MAE:
Macintosh Application Environment User's Guide
Macintosh Application Environment System Administrator's Guide
Provided in hardcopy form with MAE:
Macintosh Application Environment Installing and Getting Started
part number 030-7244-A